package fl.ass.service.transform;

import java.util.ArrayList;
import java.util.List;

import fl.ass.facade.dto.AssDealRedeemDTO;
import fl.ass.service.po.AssDealRedeem;
import cn.cmm.base.framework.utils.CollectionUtils;

 /**
 * @Description: 处置赎回表 转换器
 * @Description: 服务层与展现层转换类
 * @Description: 所有的PO只能在持久成和服务层使用
 * @Description: 所有的DTO只能在展现层和服务层使用
 * @Description: 在服务层中向下是DTO转PO,向上是PO转DTO
 */
public class AssDealRedeemTransform {


	/**
	 * PO 转  DTO
	 * @param po AssDealRedeem
	 * @return AssDealRedeemDTO
	 */
	public static AssDealRedeemDTO toDTO(AssDealRedeem po) {
		AssDealRedeemDTO  dto = null;
		if (po != null) { 
			dto = new AssDealRedeemDTO();
			dto.setId(po.getId());
			dto.setMasterId(po.getMasterId());//拖车ID
			dto.setDetailId(po.getDetailId());//拖车明细ID
			dto.setCstId(po.getCstId());//客户ID
			dto.setCstNm(po.getCstNm());//客户名称
			dto.setRedeemAddr(po.getRedeemAddr());//赎回地点
			dto.setRedeemDesc(po.getRedeemDesc());//赎回说明
			dto.setRedeemTm(po.getRedeemTm());//预计赎回时间
			dto.setPickCarNm(po.getPickCarNm());//提车人姓名
			dto.setPickCarCd(po.getPickCarCd());//提车人证件号
			dto.setPickCarTel(po.getPickCarTel());//提车人联系方式
			dto.setPayeeAccNm(po.getPayeeAccNm());//收款方账户名称  
			dto.setPayeeAccNo(po.getPayeeAccNo());//收款方银行账号
			dto.setPayeeBankNm(po.getPayeeBankNm());//收款方开户银行
			dto.setPayeeBankNo(po.getPayeeBankNo());//收款方开户行号 
			dto.setIsOnline(po.getIsOnline());//GPS是否在线
			dto.setDepositBaseAmt(po.getDepositBaseAmt());//赎回保证金计算基数（默认融资额）
			dto.setDepositPct(po.getDepositPct());//赎回保证金比例
			dto.setDepositAmt(po.getDepositAmt());//赎回保证金
			dto.setOverdueAmt(po.getOverdueAmt());//赎回逾期租金
			dto.setInterestAmt(po.getInterestAmt());//赎回罚息
			dto.setRedeemAmt(po.getRedeemAmt());//赎回金额
			dto.setReceivableAmt(po.getReceivableAmt());//应收金额
			dto.setPayAmt(po.getPayAmt());//付款金额
			dto.setActPayAmt(po.getActPayAmt());//实收金额
			dto.setActPayTm(po.getActPayTm());//实收时间
			dto.setRedeemTypeCd(po.getRedeemTypeCd());//赎回方式(ASS0007)
			dto.setFlowStatusCd(po.getFlowStatusCd());//流程状态(ASS0002)
			dto.setIsDel(po.getIsDel());//是否删除 1-删除 0-正常
			dto.setAmtTypeCd(po.getAmtTypeCd());//赎回保证金计算基数类型（PRJ0007）
			dto.setActOverdueAmt(po.getActOverdueAmt());//实际赎回逾期租金
			dto.setActInterestAmt(po.getActInterestAmt());//实际赎回罚息
			dto.setActRedeemAmt(po.getActRedeemAmt());//实际赎回金额

			dto.setCrtTm(po.getCrtTm());//创建时间
			dto.setCrtUsrId(po.getCrtUsrId());//创建人
			dto.setMdfTm(po.getMdfTm());//修改时间
			dto.setMdfUsrId(po.getMdfUsrId());//修改人
			//赎回流程附加信息页面需要
			dto.setBackedFlagCd(po.getBackedFlagCd());//拖回标记
			dto.setContAmt(po.getContAmt());//合同额
			dto.setActLsAmt(po.getActLsAmt());//融资额
			dto.setActPayBackAmt(po.getActPayBackAmt());//实际支付拖车费用
			dto.setBaseAmt(po.getBaseAmt());//保底价
            // 结清对客irr
            dto.setCstStlIrr(po.getCstStlIrr());
            // 拖车支付表id
            dto.setPaySchId(po.getPaySchId());
            dto.setRedeemWayCd(po.getRedeemWayCd());
		}
		return dto;
	}

	/**
	 * DTO 转  PO
	 * @param dto AssDealRedeemDTO
	 * @return AssDealRedeem
	 */
	public static AssDealRedeem toPO(AssDealRedeemDTO dto) {
		AssDealRedeem po = null;
		if (dto != null) {
			po = new AssDealRedeem();
			po.setId(dto.getId());
			po.setMasterId(dto.getMasterId());//拖车ID
			po.setDetailId(dto.getDetailId());//拖车明细ID
			po.setCstId(dto.getCstId());//客户ID
			po.setCstNm(dto.getCstNm());//客户名称
			po.setRedeemAddr(dto.getRedeemAddr());//赎回地点
			po.setRedeemDesc(dto.getRedeemDesc());//赎回说明
			po.setRedeemTm(dto.getRedeemTm());//预计赎回时间
			po.setPickCarNm(dto.getPickCarNm());//提车人姓名
			po.setPickCarCd(dto.getPickCarCd());//提车人证件号
			po.setPickCarTel(dto.getPickCarTel());//提车人联系方式
			po.setPayeeAccNm(dto.getPayeeAccNm());//收款方账户名称  
			po.setPayeeAccNo(dto.getPayeeAccNo());//收款方银行账号
			po.setPayeeBankNm(dto.getPayeeBankNm());//收款方开户银行
			po.setPayeeBankNo(dto.getPayeeBankNo());//收款方开户行号 
			po.setIsOnline(dto.getIsOnline());//GPS是否在线
			po.setDepositBaseAmt(dto.getDepositBaseAmt());//赎回保证金计算基数（默认融资额）
			po.setDepositPct(dto.getDepositPct());//赎回保证金比例
			po.setDepositAmt(dto.getDepositAmt());//赎回保证金
			po.setOverdueAmt(dto.getOverdueAmt());//赎回逾期租金
			po.setInterestAmt(dto.getInterestAmt());//赎回罚息
			po.setRedeemAmt(dto.getRedeemAmt());//赎回金额
			po.setReceivableAmt(dto.getReceivableAmt());//应收金额
			po.setPayAmt(dto.getPayAmt());//付款金额
			po.setActPayAmt(dto.getActPayAmt());//实收金额
			po.setActPayTm(dto.getActPayTm());//实收时间
			po.setRedeemTypeCd(dto.getRedeemTypeCd());//赎回方式(ASS0007)
			po.setFlowStatusCd(dto.getFlowStatusCd());//流程状态(ASS0002)
			po.setIsDel(dto.getIsDel());//是否删除 1-删除 0-正常
			po.setAmtTypeCd(dto.getAmtTypeCd());//赎回保证金计算基数类型（PRJ0007）
			po.setActOverdueAmt(dto.getActOverdueAmt());//实际赎回逾期租金
			po.setActInterestAmt(dto.getActInterestAmt());//实际赎回罚息
			po.setActRedeemAmt(dto.getActRedeemAmt());//实际赎回金额

			po.setCrtTm(dto.getCrtTm());//创建时间
			po.setCrtUsrId(dto.getCrtUsrId());//创建人
			po.setMdfTm(dto.getMdfTm());//修改时间
			po.setMdfUsrId(dto.getMdfUsrId());//修改人
			//赎回流程附加信息页面需要
			po.setBackedFlagCd(dto.getBackedFlagCd());//拖回标记
			po.setContAmt(dto.getContAmt());//合同额
			po.setActLsAmt(dto.getActLsAmt());//融资额
			po.setActPayBackAmt(dto.getActPayBackAmt());//实际支付拖车费用
			po.setBaseAmt(dto.getBaseAmt());//保底价
            // 结清对客irr
            po.setCstStlIrr(dto.getCstStlIrr());
            // 拖车支付表id
            po.setPaySchId(dto.getPaySchId());
            po.setRedeemWayCd(dto.getRedeemWayCd());
		}
		return po;
	}
	
	/**
	 * PO集合 转 DTO集合
	 * @param list List<AssDealRedeem>
	 * @return List<AssDealRedeemDTO>
	 */
	public static List<AssDealRedeemDTO> toDTOList(List<AssDealRedeem> list) {
		List<AssDealRedeemDTO>  voList = new ArrayList<AssDealRedeemDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AssDealRedeem po : list) {
				voList.add(toDTO(po));
			}
		}
		return voList;
	}
}
